home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
qlib205.zip
/
QLIB.ZIP
/
TEST
/
GRAFIX.ASM
< prev
next >
Wrap
Assembly Source File
|
1997-06-05
|
10KB
|
232 lines
include qlib.inc
include dos.inc
include string.inc
include video.inc ;includes vesa.inc
include conio.inc
include stdio.inc
include stdlib.inc
include alloc.inc
include stdlib.inc
include ctype.inc
.data
cursor8a label byte
db 16,16,16,16,16,16,16,16,00
db 16,01,01,01,01,01,16,00,00
db 16,01,01,01,01,16,00,00,00
db 16,01,01,01,01,16,00,00,00
db 16,01,01,01,01,01,16,00,00
db 16,01,16,16,01,01,01,16,00
db 16,16,00,00,16,01,01,01,16
db 16,00,00,00,00,16,01,16,00
db 00,00,00,00,00,00,16,00,00
cursor8b label byte
db 01,01,01,01,01,01,01,01,00
db 01,00,00,00,00,00,01,00,00
db 01,00,00,00,00,01,00,00,00
db 01,00,00,00,00,01,00,00,00
db 01,00,00,00,00,00,01,00,00
db 01,00,01,01,00,00,00,01,00
db 01,01,00,00,01,00,00,00,01
db 01,00,00,00,00,01,00,01,00
db 00,00,00,00,00,00,01,00,00
;RGB B G R
cursor16a db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (000h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (000h),2 dup (000h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (000h),2 dup (000h),2 dup (000h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (000h),2 dup (000h),2 dup (000h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (0f0h),2 dup (000h),2 dup (000h),2 dup (0f0h),2 dup (000h),2 dup (000h)
db 2 dup (0f0h),2 dup (0f0h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (0f0h),2 dup (000h)
db 2 dup (0f0h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (0f0h)
cursor16b db 2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h)
db 2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (000h)
db 2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (000h),2 dup (000h)
db 2 dup (0a0h),2 dup (000h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (000h)
db 2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (000h)
db 2 dup (0a0h),2 dup (0a0h),2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (0a0h),2 dup (000h),2 dup (000h)
db 2 dup (0a0h),2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (0a0h),2 dup (000h)
db 2 dup (0a0h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (000h),2 dup (0a0h)
;RGB B G R
cursor24a db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (000h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (000h),3 dup (000h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (000h),3 dup (000h),3 dup (000h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (000h),3 dup (000h),3 dup (000h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (0f0h),3 dup (000h),3 dup (000h),3 dup (0f0h),3 dup (000h),3 dup (000h)
db 3 dup (0f0h),3 dup (0f0h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (0f0h),3 dup (000h)
db 3 dup (0f0h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (0f0h)
cursor24b db 3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h)
db 3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (000h)
db 3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (000h),3 dup (000h)
db 3 dup (0a0h),3 dup (000h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (000h)
db 3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (000h)
db 3 dup (0a0h),3 dup (0a0h),3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (0a0h),3 dup (000h),3 dup (000h)
db 3 dup (0a0h),3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (0a0h),3 dup (000h)
db 3 dup (0a0h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (000h),3 dup (0a0h)
cursor32a db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (000h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (000h),4 dup (000h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (000h),4 dup (000h),4 dup (000h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (000h),4 dup (000h),4 dup (000h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (0f0h),4 dup (000h),4 dup (000h),4 dup (0f0h),4 dup (000h),4 dup (000h)
db 4 dup (0f0h),4 dup (0f0h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (0f0h),4 dup (000h)
db 4 dup (0f0h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (0f0h)
cursor32b db 4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h)
db 4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (000h)
db 4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (000h),4 dup (000h)
db 4 dup (0a0h),4 dup (000h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (000h)
db 4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (000h)
db 4 dup (0a0h),4 dup (0a0h),4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (0a0h),4 dup (000h),4 dup (000h)
db 4 dup (0a0h),4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (0a0h),4 dup (000h)
db 4 dup (0a0h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (000h),4 dup (0a0h)
ccol db 0 ;current color(for color rotation)
.data?
tmpstr db 80 dup (?)
a db ?
temp db 10 dup (?)
linearaddr dd ?
tvid dd ?
mode db ?
x dd ?
y dd ?
bpp db ?
;for VESAinfo()
vesa_ver dw ?
modeidx dd ?
.data
font8 equ "8bit.fnt"
font16 equ "16bit.fnt"
font24 equ "24bit.fnt"
font32 equ "32bit.fnt"
fontbuf dd 0
.code
wait4key proc
.repeat
call kbhit
.until al
call getch
ret
wait4key endp
include grafix-t.asm ;Text Tests
include grafix-g.asm ;Grafix Tests
.code
main proc
call mouse_init
.if eax==ERROR
callp printf,"Mouse Driver not installed !\n"
callp exit,0
.endif
top:
callp t_setmode,80,25 ;set standard 80x25 mode
callp printf,"Grafix Test DEMO v1.22\n\n"
callp printf," Select an option:\n\n"
callp printf," T) Text Mode Tests\n"
callp printf," G) Grafix Mode Tests\n\n"
callp printf," V) Display VESA specific info\n\n"
callp printf," Q) Quit\n:>";
@@:
call getch
callp toupper,al
.if (al=='Q')
callp t_setmode,80,25
callp printf,"Goodbye..."
ret
.endif
.if al=='T'
call text_test
.elseif al=='G'
call grafix_test
.elseif al=='V'
call do_vesa_info
.else
jmp @b
.endif
jmp top
main endp
vesa_show proc
call clrscr
callp printf,"X=%d Y=%d BPP=%d\n",vesa_modeinfo.XResolution,vesa_modeinfo.YResolution,vesa_modeinfo.BitsPerPixel
callp printf,"CelX=%d CelY=%d\n",vesa_modeinfo.XCharSize,vesa_modeinfo.YCharSize
callp printf,"BankSize=%d WinSize=%d\n",vesa_modeinfo.BankSize,vesa_modeinfo.WinSize
callp printf,"BPSL=%d\n",vesa_modeinfo.BytesPerScanLine
xor eax,eax
mov ax,vesa_modeinfo.ModeAttributes
callp printf,"ModeAttributes=%016b (%X)\n",eax,eax
xor eax,eax
mov al,vesa_modeinfo.WinAAttributes
callp printf,"WinAAttributes=%08b (%X)\n",eax,eax
xor eax,eax
mov al,vesa_modeinfo.WinBAttributes
callp printf,"WinBAttributes=%08b (%X)\n",eax,eax
callp printf,"WinGranularity=%d WinA=%X WinB=%X\n",vesa_modeinfo.WinGranularity,vesa_modeinfo.WinASegment,vesa_modeinfo.WinBSegment
callp printf,"PhysBasePtr=%X\n\n",vesa_modeinfo.PhysBasePtr
callp printf,"Press space to continue or ESC to quit..."
ret
vesa_show endp
do_vesa_info proc
call clrscr
callp vesa_init
.if eax==ERROR
callp printf,"\nVESA not detected (press a key)"
call wait4key
ret
.endif
mov vesa_ver,ax
callp printf," Vesa Info\n\n"
callp printf,"VESA v%d.%d\n",bptr[vesa_ver+1],bptr[vesa_ver]
xor eax,eax
xor ebx,ebx
mov ax,wptr [ vesa_info.OemStringPtr + 2 ]
mov bx,wptr vesa_info.OemStringPtr
shl eax,4
add eax,ebx
callp printf,"OEM :%s\n\n",eax
callp printf,"Press a key to view VESA mode list..."
call wait4key
call vesa_firstmode
.if eax==ERROR
bad:
call clrscr
callp printf,"No more VESA modes available! (press a key)"
call wait4key
ret
.endif
top:
call vesa_show
@@:
call getch
cmp al,32
jz do_more
cmp al,27
jnz @b
ret
do_more:
call vesa_nextmode
.if EAX==ERROR
jmp bad
.endif
jmp top
do_vesa_info endp
end